/***********************************************************************************
 * 文件名： trng.c
 * 作者： 刘言
 * 版本： 1
 * 说明：
 * 		True rand number generator 真随机数发生器。利用ADC采样最低位的不确定性来生成随机数。
 *  ADC越不准确，产生的随机数越不确定，因此，尽量将ADC设置到不准确的状态。也可以设置为使用MCU
 *  自带的随机数发生器（如果有的话）。
 *      依赖 mcu_adc 或者 mcu_trng。
 *      目前只支持ADC模式。
 * 修改记录：
 * 	2021/4/13: 初版。 刘言。
***********************************************************************************/
#include "polsys.h"
#include "trng.h"

u32 Trng_GetRand32()
{
    u32 rand;
    u8 i;
    u16 adv;
    _Trng_AdcInit();
    for(i=0;i<32;i++)
    {
        rand <<= 1;
        adv = _Trng_AdcGetOnce();
        adv &= 0x0001;
        rand += adv;
    }
    _Trng_AdcDeinit();
    return rand;
}


